gtk+3.0.git
8 years agoUpdate Turkish translation
Muhammet Kara [Sun, 26 Nov 2017 18:59:26 +0000 (18:59 +0000)]
Update Turkish translation

8 years agoUpdated Hebrew translation
Yosef Or Boczko [Sun, 26 Nov 2017 16:31:59 +0000 (18:31 +0200)]
Updated Hebrew translation

8 years agoUpdated Hebrew translation
Yosef Or Boczko [Sun, 26 Nov 2017 16:28:07 +0000 (18:28 +0200)]
Updated Hebrew translation

8 years agoUpdated Lithuanian translation
Aurimas Černius [Sat, 25 Nov 2017 19:33:28 +0000 (21:33 +0200)]
Updated Lithuanian translation

8 years agoFix a nefarious typo
Руслан Ижбулатов [Sat, 25 Nov 2017 17:04:48 +0000 (17:04 +0000)]
Fix a nefarious typo

8 years agoGDK W32: Ensure that selection request is processed
Руслан Ижбулатов [Mon, 18 Sep 2017 16:49:11 +0000 (16:49 +0000)]
GDK W32: Ensure that selection request is processed

To do that, run the message loop for one second or until the side-effect
of running the selection request handler is achieved (as opposed to
running it until the event is no longer queued).

The disavantage of this method is that if the event handling is
somehow missed (due to a variety of reasons - after all, it's not
a straight path from an event being queued to property_change()
being called), this will loop for one second. Since we do process
events during that time, this will not hang the application, but
might still restrict some of the functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoGDK W32: Refuse to release mouse grab while in DnD mode
Руслан Ижбулатов [Thu, 14 Sep 2017 17:43:38 +0000 (17:43 +0000)]
GDK W32: Refuse to release mouse grab while in DnD mode

Handle WM_CANCELMODE and do nothing in response to it when DnD is
active. Otherwise pass it to DefWindowProc, which will call ReleaseCapture()
on our behalf.
This prevents us from losing mouse capture when alt-tabbing during DnD
(this includes the feature of Windows Explorer where dragging stuff over
a window button in the taskbar causes that window to receive focus, i.e.
keyboardless alt-tabbing).

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoGDK W32: Update layered windows on opacity changes
Руслан Ижбулатов [Sat, 2 Sep 2017 15:25:36 +0000 (15:25 +0000)]
GDK W32: Update layered windows on opacity changes

Without this patch layered windows are only updated when they are moved
by the user or then their contents changes. This patch adds opacity
changes to the list of things that make GDK update a window. Without this
windows that don't redraw and are not moved by the used (DnD drag indicator
windows, for example) don't change their opacity.

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoW32: Massive W32 DnD fix
Руслан Ижбулатов [Sat, 19 Aug 2017 12:06:27 +0000 (12:06 +0000)]
W32: Massive W32 DnD fix

Massive changes to OLE2 DnD protocol, which was completely broken before:
* Keep GdkDragContext and OLE2 objects separate (don't ref/unref them
  together, don't necessarily create them together).
* Keep IDataObject formats in the object itself, not in a global variable.
* Fix getdata() to look up the request target in its format list, not in the
  global hash table
* Create target GdkDragContext on each drag_enter, destroy it on drag_leave,
  whereas IDropTarget is created when a window becomes a drag destination
  and is re-used indefinitely.
* Query the source IDataObject for its supported types, cache them in the
  target (!) context. This is how GTK+ works, honestly.
* Remember current_src_object when we initiate a drag, to be able
  to detect later on that the data object is ours and use a
  shortcut when querying targets
* Make sure GDK_DRAG_MOTION is only sent when something changes
* Support GTK drag cursors
* Ensure that exotic GTK clipboard formats are registered
  (but try to avoid registering formats that can't be used between applications).
* Don't enumerate internal formats
* Ensure that DnD indicator window can't accept drags or receive any kind of input
  (use WS_EX_TRANSPARENT).
* Remove unneeded indentation in _gdk_win32_dnd_do_dragdrop()
* Fix indentation in gdk_win32_drag_context_drop_finish()
* Remove obsolete comments in _gdk_win32_window_register_dnd()
* Check for DnD in progress when processing WM_KILLFOCUS, don't emit a grab
  break event in such cases (this allows alt-tabbing while DnD is in progress,
  though there may be lingering issues with focus after dropping...)
* Support Shell ID List -> text/uri-list conversion, now it's possible
  to drop files (dragged from Explorer) on GTK+ applications
* Explicitly use RegisterClipboardFormatA() when we know that the string
  is not in unicode. Otherwise explicitly use RegisterClipboardFormatW()
  with a UTF8->UTF16 converted string
* Fix _gdk_win32_display_get_selection_owner() to correctly bail
  when selection owner HWND is NULL (looking up GdkWindow for NULL
  HWND always succeeds and returns the root window - not the intended
  effect)
* More logging
* Send DROP_FINISHED event after DnD loop ends
* Send STATUS event on feedback
* Move GetKeyboardState() and related code into _gdk_win32_window_drag_begin(),
  so that it's closer to the point where last_pt and start_pt are set
* Use & 0x80 to check for the key being pressed. Windows will set low-order bit
  to 1 for all mouse buttons to indicate that they are toggled, so simply
  checking for the value not being 0 is not enough anymore.
  This is probably a new thing in modern W32 that didn't exist before
  (OLE2 DnD code is old).
* Fixed (hopefully) and simplified HiDPI parts of the code.

Also adds managed DnD implementation for W32 GDK backend (for both
OLE2 and LOCAL protocols). Mostly a copy of the X11 backend code, but
there are some minor differences:
* doesn't use drag_window field in GdkDragContext,
  uses the one in GdkWin32DragContext exclusively
* subtracts hotspot offset from the window coordinates when showing
  the dragback animation
* tries to consistently support scaling and caches the scale
  in the context
* Some keynav code is removed (places where grabbing/ungrabbing should
  happen is marked with TODOs), and the rest is probably inert.

Also significantly changes the way selection (and clipboard) is handled
(as MSDN rightly notes, the handling for DnD and Clipboard
 formats is virtually the same, so it makes sense to handle
 both with the same code):
* Don't spam GDK_OWNER_CHANGE, send them only when owner
  actually changes
* Open clipboard when our process becomes the clipboard owner
  (we are doing it anyway, to empty the clipboard and *become* the owner),
  and then don't close it until a scheduled selection request event
  (with TARGETS target) is received. Process that event by announcing
  all of our supported formats (by that time add_targets() should have
  been called up the stack, thus the formats are known; just in case,
  add_targets() will also schedule a selection request, if one isn't
  scheduled already, so that late-coming formats can still be announced).
* Allow clipboard opening for selection_convert() to be delayed if it
  fails initially.
* The last two points above should fix all the bugs about GTK+ rising
  too much ruckus over OpenClipboard() failures, as owner change
  *is allowed* to fail (though not all callers currently handle
  that case), and selection_convert() is asynchronous to begin with.
  Still, this is somewhat risky, as there's a possibility that the
  code will work in unexpected ways and the clipboard will remain open.
  There's now logging to track the clipboard being opened and closed,
  and a number of failsafes that try to ensure that it isn't kept open
  for no reason.
* Added copious notes on the way clipboard works on X11, Windows and GDK-W32,
  also removed old comments in DnD implementation, replaced some of them
  with the new ones
* A lot of crufty module-global variables are stuffed into a singleton
  object, GdkWin32Selection. It's technically possible to make it a
  sub-object of the Display object (the way Wayland backend does),
  but since Display object on W32 is a singleton anyway... why bother?
* Fixed the send_change_events() a bit (was slightly broken in one of the
  previous iterations)
* Ensure that there's no confusion between selection conversion (an artifact
  term from X11) and selection transmutation (changing the data to be W32-compatible)
* Put all the transmutation code and format-target-matching code into gdkselection-win32.c,
  now this code isn't spread across multiple files.
* Consequently, moved some code away from gdkproperty-win32.c and gdkdnd-win32.c
* Extensive format transmutation checks for OLE2 DnD and clipboard.
  We now keep track of which format mappings are for transmutations,
  and which aren't (for example, when formats are passed as-is, or when
  a registered name is just an alias)
* Put transmutation code into separate functions

* Ensure that drop target keeps a format->target map for supported formats,
  this is useful when selection_convert() is called, as it only receives a
  single target and no hints on the format from which the data should
  be transmuted into this target.
* Add clear_targets() on W32, to de called by GTK
* Use g_set_object() instead of g_ref_object() where it is allowed.
* Fix indentation (and convert tabs to spaces), remove unused variables

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoGDK W32: Don't leak the atom name string
Руслан Ижбулатов [Tue, 22 Aug 2017 14:23:14 +0000 (14:23 +0000)]
GDK W32: Don't leak the atom name string

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoGDK W32: Fix a typo in OLE2 DnD code
Руслан Ижбулатов [Tue, 15 Aug 2017 13:12:43 +0000 (13:12 +0000)]
GDK W32: Fix a typo in OLE2 DnD code

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoOnly register application/x-rootwindow-drop on X11
Руслан Ижбулатов [Tue, 15 Aug 2017 13:07:01 +0000 (13:07 +0000)]
Only register application/x-rootwindow-drop on X11

application/x-rootwindow-drop is not useful anywhere else,
so put it under #ifdef GDK_WINDOWING_X11

On W32 this prevents toplevels from automatically becoming valid
drop targets with a useless drop type.

https://bugzilla.gnome.org/show_bug.cgi?id=786509

8 years agoGDK W32: More flexible modal operation mode
Руслан Ижбулатов [Fri, 11 Aug 2017 07:00:41 +0000 (07:00 +0000)]
GDK W32: More flexible modal operation mode

Instead of using a boolean to indicate a modal operation being in progress,
use a set of flags, and allow these to be set and unset independently.

Specifically, this allows WM_CAPTURECHANGED handler to only act when a drag-move or
drag-resize modal operation is in progress, and ignore DND (which can also cause
WM_CAPTURECHANGED to be posted). This avoids a crash due to assertion failure when
OLE2 DND code tries to end a modal operation that was already ended by the WM_CAPTURECHANGED
handler.

https://bugzilla.gnome.org/show_bug.cgi?id=786121

8 years agoBe more specific in ::insert-emoji Since tag
Daniel Boles [Thu, 23 Nov 2017 17:17:08 +0000 (17:17 +0000)]
Be more specific in ::insert-emoji Since tag

I had been unsure whether to include the minor version, but
:show-emoji-icon already did, so do the same here to match.

8 years agoGDK W32: fix monitor pruning code
Руслан Ижбулатов [Thu, 23 Nov 2017 07:15:28 +0000 (07:15 +0000)]
GDK W32: fix monitor pruning code

Decrement the counter for each removed element, otherwise we skip
one element every time we remove one. Also, no need for continue here.

8 years agoAdd Since to ::insert-emoji, and some trivialities
Daniel Boles [Wed, 22 Nov 2017 22:35:25 +0000 (22:35 +0000)]
Add Since to ::insert-emoji, and some trivialities

Document when these keybinding signals were added.

8 years agotext view: Support the Emoji chooser
Matthias Clasen [Wed, 22 Nov 2017 21:47:43 +0000 (16:47 -0500)]
text view: Support the Emoji chooser

Similar to GtkEntry, add an "Insert Emoji" context
menu item, and add the same keybindings. We don't
add the icon here, since it is not clear where it
would go.

https://bugzilla.gnome.org/show_bug.cgi?id=790029

8 years agoFix indentation mishap
Matthias Clasen [Wed, 22 Nov 2017 21:46:49 +0000 (16:46 -0500)]
Fix indentation mishap

8 years agoSpinButton: Explain meaning of nullable Adjustment
Daniel Boles [Wed, 22 Nov 2017 20:27:26 +0000 (20:27 +0000)]
SpinButton: Explain meaning of nullable Adjustment

configure() marked the @adj argument as (allow-none) but did not explain
what passing NULL would do. Fix that, and move it to (nullable) as well.

8 years agodoc: Replace uses of #NULL with %NULL
Daniel Boles [Wed, 22 Nov 2017 19:19:36 +0000 (19:19 +0000)]
doc: Replace uses of #NULL with %NULL

8 years agoCellRendererPixbuf: Improve property docs
Daniel Boles [Wed, 22 Nov 2017 18:57:48 +0000 (18:57 +0000)]
CellRendererPixbuf: Improve property docs

Add Since annotations for the stock-* properties.
Add a doc comment for :stock-size in order to link to GtkIconSize.
Document :stock-detail as deprecated. It does nothing & is gone in GTK+4

8 years agodoc: TextLayout: Add missing (out) annotations
Daniel Boles [Tue, 21 Nov 2017 10:52:35 +0000 (10:52 +0000)]
doc: TextLayout: Add missing (out) annotations

and move from (allow-none) to (optional)

8 years agoemoji chooser: break out a helper function
Matthias Clasen [Mon, 20 Nov 2017 03:40:07 +0000 (22:40 -0500)]
emoji chooser: break out a helper function

This is just a small cleanup.

8 years agoentry: Add a key binding for the emoji chooser
Matthias Clasen [Sun, 19 Nov 2017 03:44:12 +0000 (22:44 -0500)]
entry: Add a key binding for the emoji chooser

Make Ctrl-. and Ctrl-; bring up the emoji chooser.

https://bugzilla.gnome.org/show_bug.cgi?id=789160

8 years agoemoji chooser: Make menu key work as expected
Matthias Clasen [Sun, 19 Nov 2017 23:03:07 +0000 (18:03 -0500)]
emoji chooser: Make menu key work as expected

Whenever we have a right-click action, we should make
the menu key work as a keyboard-accessible alternative.

8 years agoemoji chooser: handle right-click
Matthias Clasen [Sun, 19 Nov 2017 21:18:28 +0000 (16:18 -0500)]
emoji chooser: handle right-click

Whereever we handle long-press for touch, it makes sense to handle
right-click as a faster alternative for mouse-based interaction.

This commit makes right-click work to bring up the variation
selector for Emojis.

8 years agoTrivial cleanup
Matthias Clasen [Sun, 19 Nov 2017 13:29:37 +0000 (08:29 -0500)]
Trivial cleanup

Better to use G_SOURCE_REMOVE than FALSE, for clarity.

8 years agoemoji chooser: Don't leak gestures
Matthias Clasen [Sun, 19 Nov 2017 13:28:35 +0000 (08:28 -0500)]
emoji chooser: Don't leak gestures

We were not freeing these gestures as we should.

8 years agoemojichooser: animate the adjustment
Benjamin Otte [Sun, 5 Nov 2017 15:12:35 +0000 (16:12 +0100)]
emojichooser: animate the adjustment

... instead of doing a dance with the scrolled window to get it to scroll
the adjustment.

8 years agoframe-clock: Fix typo in API documentation
Bastien Nocera [Wed, 22 Nov 2017 14:23:52 +0000 (15:23 +0100)]
frame-clock: Fix typo in API documentation

8 years agoUpdate Spanish translation
Daniel Mustieles [Mon, 20 Nov 2017 08:39:00 +0000 (08:39 +0000)]
Update Spanish translation

8 years agoUpdate Spanish translation
Daniel Mustieles [Mon, 20 Nov 2017 08:38:35 +0000 (08:38 +0000)]
Update Spanish translation

8 years agoUpdate Turkish translation
Muhammet Kara [Sun, 19 Nov 2017 20:13:03 +0000 (20:13 +0000)]
Update Turkish translation

8 years agoUpdate Italian translation
Milo Casagrande [Fri, 17 Nov 2017 13:33:01 +0000 (13:33 +0000)]
Update Italian translation

8 years agoUpdate Italian translation
Milo Casagrande [Fri, 17 Nov 2017 10:51:13 +0000 (10:51 +0000)]
Update Italian translation

8 years agoUpdate Italian translation
Milo Casagrande [Fri, 17 Nov 2017 10:49:34 +0000 (10:49 +0000)]
Update Italian translation

8 years agoicontheme: Add a trailing / when enumerating resources
Matthias Clasen [Mon, 13 Nov 2017 17:12:52 +0000 (12:12 -0500)]
icontheme: Add a trailing / when enumerating resources

This avoids extra string copies in GResource.

8 years agoapplication: Append a / to the icon resource path
Matthias Clasen [Mon, 13 Nov 2017 12:35:18 +0000 (07:35 -0500)]
application: Append a / to the icon resource path

g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting  a '/' there to begin with.

8 years agoicontheme: Append a / to the resource path
Matthias Clasen [Mon, 13 Nov 2017 12:33:35 +0000 (07:33 -0500)]
icontheme: Append a / to the resource path

g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting  a '/' there to begin with.

8 years agogdk: Fix GDK_ALL_EVENTS_MASK
Benjamin Otte [Mon, 13 Nov 2017 16:06:34 +0000 (17:06 +0100)]
gdk: Fix GDK_ALL_EVENTS_MASK

This mask was forgotten to update when the last 2 event masks were
added, probably because it looks like it's already maxed.

8 years agogtkplacessidebar: Fix new tab/window handling for cloud accounts
Carlos Soriano [Mon, 30 Oct 2017 20:47:07 +0000 (21:47 +0100)]
gtkplacessidebar: Fix new tab/window handling for cloud accounts

It wasn't taking into account whether the sidebar had support for them
or not, resulting in a file chooser with open in new tab/window menu
items when it's not supported.

To fix it, do as with the other menus and check for the availability of
new tab/window flags.

https://bugzilla.gnome.org/show_bug.cgi?id=786123

8 years agogtkplacessidebar: Adapt to libcloudproviders 0.2.0
Carlos Soriano [Mon, 30 Oct 2017 20:38:41 +0000 (21:38 +0100)]
gtkplacessidebar: Adapt to libcloudproviders 0.2.0

And a few improvements on the way.

https://bugzilla.gnome.org/show_bug.cgi?id=786123

8 years agocss: avoid copying resource data
Christian Hergert [Mon, 13 Nov 2017 03:34:46 +0000 (19:34 -0800)]
css: avoid copying resource data

To avoid copying data from gresources to the heap, we can use
the newly added gtk_file_load_bytes(). That function will check
for resource:// URIs and access their internal data directly.

Other URI schemes will read the contents into memory and return
a GBytes as normal.

https://bugzilla.gnome.org/show_bug.cgi?id=790270

8 years agoutils: add gtk_file_load_bytes() helper
Christian Hergert [Mon, 13 Nov 2017 03:26:54 +0000 (19:26 -0800)]
utils: add gtk_file_load_bytes() helper

This helper will load GBytes for a GFile, but try to reuse the
embedded data for a gresource to reduce the chances of copying
data to the heap.

https://bugzilla.gnome.org/show_bug.cgi?id=790270

8 years agoa11y: Handle a treeview with no columns
Benjamin Otte [Mon, 13 Nov 2017 02:51:53 +0000 (03:51 +0100)]
a11y: Handle a treeview with no columns

Code was spewing criticals to stderr because of nonexisting columns. So
check that there's actually an existing column first.

8 years agoprogresstracker: Don't hand out NaN
Benjamin Otte [Sun, 12 Nov 2017 05:19:00 +0000 (06:19 +0100)]
progresstracker: Don't hand out NaN

When the duration is set to 0, clamp it to 1us. This way we're almost
correct: We should really instantly finish, but we don't. But we do
respect the delay.

Doing this properly would require some refactoring of how the progress
tracker actually maintains progress, and this is just a quick fix.

8 years agoUpdate Friulian translation
Fabio Tomat [Fri, 10 Nov 2017 15:48:06 +0000 (15:48 +0000)]
Update Friulian translation

8 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Thu, 9 Nov 2017 19:09:40 +0000 (20:09 +0100)]
Updated Norwegian bokmål translation.

8 years agoWindow: Document get_icon() return as nullable
Daniel Boles [Thu, 9 Nov 2017 09:44:49 +0000 (09:44 +0000)]
Window: Document get_icon() return as nullable

8 years agoCssProvider: Use consistent theme name placeholder
Daniel Boles [Wed, 8 Nov 2017 06:48:17 +0000 (06:48 +0000)]
CssProvider: Use consistent theme name placeholder

commit 475d916eb92c0106d09525bcca938f05fd6a81b5 added various paths that
use theme-name for this, but the existing path already used THEME, with
a subsequent description referring to the latter. So use that everywhere

8 years ago3.22.26
Matthias Clasen [Tue, 7 Nov 2017 19:52:24 +0000 (14:52 -0500)]
3.22.26

8 years agoUpdate Slovak translation
Dušan Kazik [Tue, 7 Nov 2017 18:24:11 +0000 (18:24 +0000)]
Update Slovak translation

8 years agoUpdate Slovak translation
Dušan Kazik [Tue, 7 Nov 2017 18:21:41 +0000 (18:21 +0000)]
Update Slovak translation

8 years agoUpdated Czech translation
Marek Cernocky [Mon, 6 Nov 2017 20:03:47 +0000 (21:03 +0100)]
Updated Czech translation

8 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 6 Nov 2017 18:19:31 +0000 (18:19 +0000)]
Update Brazilian Portuguese translation

8 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 6 Nov 2017 17:53:03 +0000 (17:53 +0000)]
Update Brazilian Portuguese translation

8 years agoUpdate Dutch translation
Hannie Dumoleyn [Mon, 6 Nov 2017 16:20:55 +0000 (16:20 +0000)]
Update Dutch translation

8 years agoUpdate Dutch translation
Hannie Dumoleyn [Mon, 6 Nov 2017 16:17:20 +0000 (16:17 +0000)]
Update Dutch translation

8 years agoUpdate German translation
Mario Blättermann [Mon, 6 Nov 2017 08:35:14 +0000 (08:35 +0000)]
Update German translation

8 years agoUpdate German translation
Mario Blättermann [Mon, 6 Nov 2017 08:32:35 +0000 (08:32 +0000)]
Update German translation

8 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Mon, 6 Nov 2017 08:09:53 +0000 (09:09 +0100)]
Updated Norwegian bokmål translation.

8 years agoUpdate Swedish translation
Anders Jonsson [Sun, 5 Nov 2017 21:23:19 +0000 (21:23 +0000)]
Update Swedish translation

8 years agoUpdate Swedish translation
Anders Jonsson [Sun, 5 Nov 2017 21:19:06 +0000 (21:19 +0000)]
Update Swedish translation

8 years agoUpdate Polish translation
Piotr Drąg [Sun, 5 Nov 2017 20:47:10 +0000 (21:47 +0100)]
Update Polish translation

8 years agoplacessidebar: correct quotation marks in a new string
Piotr Drąg [Sun, 5 Nov 2017 20:16:59 +0000 (21:16 +0100)]
placessidebar: correct quotation marks in a new string

8 years agoplacessidebar: add starred location item
Alexandru Pandelea [Thu, 20 Jul 2017 15:29:42 +0000 (16:29 +0100)]
placessidebar: add starred location item

Add an item for showing all files marked as favorite. This item will
open all files that have the nao:predefined-tag-favorite tag

https://bugzilla.gnome.org/show_bug.cgi?id=785176

8 years agogdk/win32: Fix Win32 GL Context switching
Chun-wei Fan [Mon, 30 Oct 2017 07:00:28 +0000 (15:00 +0800)]
gdk/win32: Fix Win32 GL Context switching

Since on Windows we need to use a good amount of temporary GL contexts,
we need to switch back to the original GL contexts we were using when
we are done with the temporary GL contexts, otherwise multi-GL windows
will cause confusions causing display artifacts and crashes.

Also, use the GdkWin32GLContext::gl_hdc consistently throughout
the code and remove the GdkWin32Display::gl_hdc as Lukas K pointed out
that GdkWin32Display::gl_hdc becomes out-of-date and so the HDC that the
GL context is bound to becomes incorrect in sceanarios using multiple
windows with GtkGLArea/GdkGLArea items (which would cause the artifacts in
programs that use multiple windows with GtkGLArea/GdkGLArea items, and it
turns out that GdkWin32Display::gl_hdc is actually not necessary to help
keep track of the HDCs we use for our GL contexts.

Partly based on patch from Lukas K <lu@0x83.eu>

https://bugzilla.gnome.org/show_bug.cgi?id=789213

8 years agoUpdate Arabic translation
Khaled Hosny [Fri, 3 Nov 2017 09:46:43 +0000 (11:46 +0200)]
Update Arabic translation

8 years agoAdwaita: Fix Entry:has-frame if backdrop/disabled
Daniel Boles [Tue, 31 Oct 2017 19:43:52 +0000 (19:43 +0000)]
Adwaita: Fix Entry:has-frame if backdrop/disabled

by explicitly including these in the selector removing the border, to
avoid other rules on these pseudoclasses overriding the .flat class.

https://bugzilla.gnome.org/show_bug.cgi?id=789733

8 years agoHighContrast: Fix GtkEntry:has-frame not working
Daniel Boles [Tue, 31 Oct 2017 19:57:45 +0000 (19:57 +0000)]
HighContrast: Fix GtkEntry:has-frame not working

• Remove the box-shadow at the top when the entry is in the foreground
• Bump precedence so that :disabled entries do not have .flat overridden
• Also add :backdrop to stop HCInverse getting a lighter BG in :backdrop

https://bugzilla.gnome.org/show_bug.cgi?id=789733

8 years agoInspector: better default split of CSS nodes/props
Daniel Boles [Thu, 12 Oct 2017 20:09:58 +0000 (21:09 +0100)]
Inspector: better default split of CSS nodes/props

Move the default pos of the Paned handle to 400px from the left, i.e.
50% of the default width of the window. The previous position at 300px
from left meant the node treeview was too narrow & could easily result
in the (useful) State column not being visible in the case of many
apps. The properties pane doesn't need to be as big as it was anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=788898

8 years agoAboutDialog: Fix accepting GTK_LICENSE_AGPL_3_0
Julian Sparber [Tue, 31 Oct 2017 01:29:59 +0000 (02:29 +0100)]
AboutDialog: Fix accepting GTK_LICENSE_AGPL_3_0

Add the new GTK_LICENSE_AGPL_3_0 to the allowed enum range checked in
gtk_about_dialog_set_license_type(), so this value is not rejected.

https://bugzilla.gnome.org/show_bug.cgi?id=789678

8 years agoicon-browser: Centre Copy button in dialog again
Julian Sparber [Wed, 18 Oct 2017 11:00:41 +0000 (13:00 +0200)]
icon-browser: Centre Copy button in dialog again

This patch moves the "Copy to Clipboard" button into the same container
as the description label, to centre the button regardless of the number
of icons shown in the grid.

https://bugzilla.gnome.org/show_bug.cgi?id=789134

8 years agogdkmonitor: Fix typo
Daniel Boles [Tue, 31 Oct 2017 18:27:34 +0000 (18:27 +0000)]
gdkmonitor: Fix typo

8 years agoSpinButton: Fix typo
Daniel Boles [Mon, 23 Oct 2017 08:20:23 +0000 (09:20 +0100)]
SpinButton: Fix typo

8 years agomake GDK_DEBUG=opengl work on win32
Lukas K [Sat, 28 Oct 2017 22:07:34 +0000 (00:07 +0200)]
make GDK_DEBUG=opengl work on win32

8 years agoinput/IME: Defer the emit of the "commit" signal
Chun-wei Fan [Thu, 31 Aug 2017 10:43:07 +0000 (18:43 +0800)]
input/IME: Defer the emit of the "commit" signal

On Windows, when IME is used, each keystroke results in the
WM_IME_COMPOSITION event being sent first.  This means that in our case
when one decides on to accept the input that is in the preedit buffer,
we first get from Windows the WM_IME_COMPOSITION event
(where we emit the commit signal), followed by the WM_IME_ENDCOMPOSITION
event (where we emit the pair of preedit-changed and preedit-end
signals).

Since commit f11f989 (GtkEntry: Remove recompute idle), we do the input
recomputation directly, this will cause a pair of "Pango-WARNING:
Assertion failed: (index >= 0 && index <= layout->length)" being shown,
as gtkentry.c's priv->preedit_length and priv->preedit_cursor was unable
to be reset to 0 in time as a result of the recomputation triggered by
the commit being done before the reset of priv->preedit_length and
priv->preedit_cursor (which are no longer valid as we essentially say
that we are done with the preedit buffer).

As we could only acquire the final string that was entered in this
preedit session when we handle the WM_IME_COMPOSITION event, fix this by
saving up the final string we acquire from Windows IME in UTF-8 when we
handle the WM_IME_COMPOSITION event from Windows, and emit the commit
signal with that string after we emit the preedit-changed and
preedit-end signals when we handle the WM_IME_ENDCOMPOSITION event from
Windows, which comes afterwards.

Also fix the formatting of the code around the parts of the files that
was changed.

https://bugzilla.gnome.org/show_bug.cgi?id=787142

8 years agowayland: Distribute protocol/server-decoration.xml in tarballs
Simon McVittie [Sun, 29 Oct 2017 17:50:13 +0000 (17:50 +0000)]
wayland: Distribute protocol/server-decoration.xml in tarballs

Otherwise, builds that include the Wayland backend fail.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=789630
Signed-off-by: Simon McVittie <smcv@debian.org>
Reviewed-by: Emmanuele Bassi <ebassi@gnome.org>
8 years ago3.22.25
Matthias Clasen [Sun, 29 Oct 2017 12:47:41 +0000 (08:47 -0400)]
3.22.25

8 years agoRevert "gdkscreen-x11: Enable RandR on VirtualBox"
Matthias Clasen [Sat, 28 Oct 2017 14:22:30 +0000 (10:22 -0400)]
Revert "gdkscreen-x11: Enable RandR on VirtualBox"

This reverts commit f2ba6ca47322a17b37fb92662fc9552b4f106f10.

This change was causing problems with several X servers,
see https://bugzilla.gnome.org/show_bug.cgi?id=780101

8 years agowidget: Typecheck before deref in translate_coords
Andrea Azzarone [Thu, 19 Oct 2017 08:36:50 +0000 (08:36 +0000)]
widget: Typecheck before deref in translate_coords

https://bugzilla.gnome.org/show_bug.cgi?id=771279

8 years agoGtkPathBar: Centralize handling of outstanding cancellables
Federico Mena Quintero [Fri, 27 Oct 2017 22:04:02 +0000 (17:04 -0500)]
GtkPathBar: Centralize handling of outstanding cancellables

The path bar would crash if we disposed it before all pending I/O
operations had finished.  Now we remember all the outstanding
operations directly in the GtkPathBarPrivate, and deal with them
consistently.

8 years agoGdkMonitor: Use 1 as scale fallback value
Matthias Clasen [Fri, 27 Oct 2017 20:12:28 +0000 (16:12 -0400)]
GdkMonitor: Use 1 as scale fallback value

The same value we use in gtk_widget_get_scale_factor.

8 years agowayland: scale down reported monitor geometry
Olivier Fourdan [Tue, 27 Jun 2017 09:12:57 +0000 (11:12 +0200)]
wayland: scale down reported monitor geometry

According to the documentation, gdk_monitor_get_geometry() reports the
monitor geometry in ”application pixels”, not in ”device pixels”,
meaning that the actual device resolution needs to be scaled down by the
scale factor of the output.

x11 backend does that downscaling, whereas Wayland backend did not,
causing a discrepancy depending on the backend used.

https://bugzilla.gnome.org/show_bug.cgi?id=783995

8 years agoGtkWindow: Set tiled class on windows that have any tiled edge
Simon McVittie [Thu, 26 Oct 2017 15:02:07 +0000 (16:02 +0100)]
GtkWindow: Set tiled class on windows that have any tiled edge

This has no practical effect on Adwaita, but might fix some
third-party themes that were broken by GTK+ 3.22.23.

Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357

8 years agoGtkHeaderBar: Reconsider buttons if any tiling state changes
Simon McVittie [Thu, 26 Oct 2017 14:57:29 +0000 (15:57 +0100)]
GtkHeaderBar: Reconsider buttons if any tiling state changes

Looking at the 1-bit "tiled or not?" state is not necessarily
enough.

Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357

8 years agoSet GDK_WINDOW_STATE_TILED if any edge is tiled
Simon McVittie [Thu, 26 Oct 2017 14:51:51 +0000 (15:51 +0100)]
Set GDK_WINDOW_STATE_TILED if any edge is tiled

This state flag is used in several places in GTK+, for example to
ignore RESIZE_INC hints if tiled. Setting it is also necessary for
backwards compatibility with applications that changed their behaviour
when tiled, such as GNOME Terminal and its MATE fork.

Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357

8 years agoWayland: Implement KDE's SSD protocol
Drew DeVault [Sat, 29 Apr 2017 00:35:51 +0000 (20:35 -0400)]
Wayland: Implement KDE's SSD protocol

If the compositor prefers server-side decorations and the client doesn't
customize the title bar, we disable client-side decorations and let the
compositor know. Otherwise, we continue to use client-side decorations.

Signed-off-by: Drew DeVault <sir@cmpwn.com>
https://bugzilla.gnome.org/show_bug.cgi?id=781909

8 years agowayland: Do not constrain saved window size
Olivier Fourdan [Wed, 21 Jun 2017 13:02:05 +0000 (15:02 +0200)]
wayland: Do not constrain saved window size

Under Wayland, an xdg_surface.configure with size 0x0 means it's up to
the client to set its size.

When transitioning from maximized state to un-maximized, the Wayland
compositor will send such an 0x0 configure so that the client can
restore its original size.

However, the original size was already constrained, so re-applying
size constrains can lead to a smaller size when using size increments.

Avoid this caveat by not applying size constrains when we are restoring
the original size.

https://bugzilla.gnome.org/show_bug.cgi?id=777072

8 years agoappchooserwidget: Don't limit application list unconditionally
Florian Müllner [Sun, 22 Oct 2017 22:18:19 +0000 (00:18 +0200)]
appchooserwidget: Don't limit application list unconditionally

As documented, GtkAppChooser is "typically [used] for the purpose of
opening a file". However given that applications that support neither
opening files nor URLs are filtered out, the chooser is not actual
useful for any other (atypical) usage. Change that by only applying
the filtering if a content-type was set, and use the full unfiltered
list otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=789327

8 years agoactionable: Allow all detailed action name formats
Christian Persch [Wed, 11 Oct 2017 18:43:19 +0000 (20:43 +0200)]
actionable: Allow all detailed action name formats

Use g_action_parse_detailed_name() to enable use of this API
for actions with non-string parameter.

https://bugzilla.gnome.org/show_bug.cgi?id=788841

8 years agowayland: Don't spew warnings for blank cursors
Matthias Clasen [Wed, 12 Apr 2017 17:56:49 +0000 (13:56 -0400)]
wayland: Don't spew warnings for blank cursors

We were unnecessarily spewing warnings when blank cursors
were getting a new scale set. Standardize on "none" as the
name for blank cursors, and avoid the warning.

https://bugzilla.gnome.org/show_bug.cgi?id=775217

8 years agogdk: Clear GL context when window is withdrawn
Andrea Azzarone [Wed, 25 Oct 2017 13:34:47 +0000 (09:34 -0400)]
gdk: Clear GL context when window is withdrawn

Some clients (e.g. gnome-online-accounts) quickly unmap and map
a window. With some backends the backend surface will be replaced
causing the application to crash because the GL context is still
using the old surface. Clearing the GL context when a window is
withdrawn fixes this.

https://bugzilla.gnome.org/show_bug.cgi?id=789141

8 years agoVisual Studio builds: Improve binary security
Chun-wei Fan [Fri, 20 Oct 2017 09:01:30 +0000 (17:01 +0800)]
Visual Studio builds: Improve binary security

Ensure that the /DYNAMICBASE linker option (which is actually the
default) is enabled for all of our Visual Studio project builds, as the
gtk3-demo projects inadvertly disabled it.

Also, for x64 builds on MSVC 2012 or later, enable /HIGHENTROPYVA to
enhance the security of our binaries as well.

Pointed out by Ignacio Casal Quinteiro.

8 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 20 Oct 2017 05:53:07 +0000 (05:53 +0000)]
Update Indonesian translation

8 years agoRevert "gdk/wayland: Avoid idempotent wl_subsurface.set_position calls"
Michael Catanzaro [Fri, 20 Oct 2017 00:47:30 +0000 (19:47 -0500)]
Revert "gdk/wayland: Avoid idempotent wl_subsurface.set_position calls"

This reverts commit 8aa6d59b7a214ba03a83bcae8c43712f8e402927.

This caused a regression in totem that still needs to be investigated.

https://bugzilla.gnome.org/show_bug.cgi?id=784314

8 years agogtkwidget: Emulate motion before button press on fallback touch handler
Carlos Garnacho [Thu, 19 Oct 2017 11:55:34 +0000 (13:55 +0200)]
gtkwidget: Emulate motion before button press on fallback touch handler

The code has been shuffled so GDK_TOUCH_BEGIN results in a
GDK_MOTION_NOTIFY to the new position and a GDK_BUTTON_PRESS on that same
place. This makes pointer emulation consistent with what X11 does. Even
though button presses have x/y arguments, there's code out there relying
on getting prior motion events.

8 years agoGtkGestureZoom: Don't leak the list of sequences
Debarshi Ray [Wed, 18 Oct 2017 13:35:19 +0000 (15:35 +0200)]
GtkGestureZoom: Don't leak the list of sequences

https://bugzilla.gnome.org/show_bug.cgi?id=789149

8 years agoemojichooser: Plug memory leak
Timm Bäder [Tue, 17 Oct 2017 06:49:06 +0000 (08:49 +0200)]
emojichooser: Plug memory leak

8 years agoicon-browser: Add scalable icons to icon detail modal window
Julian Sparber [Mon, 7 Aug 2017 21:33:42 +0000 (23:33 +0200)]
icon-browser: Add scalable icons to icon detail modal window

When making mockups for GNOME apps in Inkscape, looking for symbolic
icons is a common task. Searching for icons in the file system is clumsy,
and icon-browser provides a much better interface for finding them.
However, currently there is no way to insert the symbolic icons as SVG
directly from icon-browser, so right now it is only useful for finding
the name.

This patch adds a sixth column to the modal window that appears when
clicking a symbolic icon. The icon in this column is labeled "scalable",
and dragging it onto another window results in the vector icon URI being
inserted.

This enables a much simpler workflow when designing with symbolic icons.

https://bugzilla.gnome.org/show_bug.cgi?id=778930